#!/usr/bin/env node

const sqlite3 = require('sqlite3').verbose();
const path = require('path');

const dbPath = path.join(__dirname, 'data', 'database.sqlite');

console.log('🧪 测试联系方式功能...');

// 模拟添加一个联系方式
function testAddContact() {
  const db = new sqlite3.Database(dbPath);
  
  // 创建表
  db.run(`CREATE TABLE IF NOT EXISTS contacts (
    id TEXT PRIMARY KEY,
    type TEXT NOT NULL,
    title TEXT NOT NULL,
    description TEXT,
    content TEXT NOT NULL,
    qr_code TEXT,
    is_visible INTEGER DEFAULT 1,
    order_num INTEGER DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
  )`, (err) => {
    if (err) {
      console.error('❌ 创建表失败:', err.message);
      return;
    }
    
    console.log('✅ contacts表创建成功');
    
    // 插入测试数据
    const testContact = {
      id: 'test-' + Date.now(),
      type: 'email',
      title: '测试邮箱',
      description: '这是一个测试邮箱',
      content: 'test@example.com',
      qr_code: null,
      is_visible: 1,
      order_num: 1
    };
    
    db.run(`INSERT INTO contacts (id, type, title, description, content, qr_code, is_visible, order_num) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, 
      [testContact.id, testContact.type, testContact.title, testContact.description, testContact.content, testContact.qr_code, testContact.is_visible, testContact.order_num],
      function(err) {
        if (err) {
          console.error('❌ 插入数据失败:', err.message);
        } else {
          console.log('✅ 测试数据插入成功, ID:', testContact.id);
          
          // 查询数据
          db.all("SELECT * FROM contacts WHERE id = ?", [testContact.id], (err, rows) => {
            if (err) {
              console.error('❌ 查询数据失败:', err.message);
            } else {
              console.log('📊 查询结果:', rows);
              
              if (rows.length > 0) {
                console.log('🎉 联系方式功能基本正常！');
                
                // 测试更新
                db.run("UPDATE contacts SET title = ? WHERE id = ?", ['更新的测试邮箱', testContact.id], function(err) {
                  if (err) {
                    console.error('❌ 更新失败:', err.message);
                  } else {
                    console.log('✅ 更新成功，影响行数:', this.changes);
                    
                    // 测试删除
                    db.run("DELETE FROM contacts WHERE id = ?", [testContact.id], function(err) {
                      if (err) {
                        console.error('❌ 删除失败:', err.message);
                      } else {
                        console.log('✅ 删除成功，影响行数:', this.changes);
                      }
                      
                      db.close();
                    });
                  }
                });
              }
            }
          });
        }
      }
    );
  });
}

testAddContact();